package net.etfbl.projekat.verko.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Date;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.math.BigDecimal;

import net.etfbl.projekat.verko.dto.Korisnik;

public class KorisnikDAO {
	private static final String Insert="INSERT INTO tbl_korisnik values(?,?,?,?,?,?,?)";
	private static final String Delete="UPDATE tbl_korisnik SET aktvan=0 where id_korisnik=?";
	private static final String Update="UPDATE tbl_korisnik SET ime=?,password=md5(?) where id_korisnik=?";
	
	public static boolean obrisiKorisnika(DataManager datamanager,Korisnik korisnik){
		boolean uspjesno=false;
		Connection kon=datamanager.checkOutConnection();
		if(kon!=null){
			try{
				PreparedStatement sta=kon.prepareStatement(Delete);
				sta.setInt(1, korisnik.getId_korisnik());
			
				if(sta.executeUpdate()==1){
					uspjesno=true;
				}
				else
				{
					uspjesno=false;
				}
				
				sta.close();
				datamanager.checkInConnection(kon);
				
			}
			catch(SQLException e){
				e.printStackTrace();
			}
		}
		
		
		
		return uspjesno;
	}
	public static int login(DataManager datamanager, String username, String password)
	{
		int statusLogina=0;
		boolean pom=false;
		Connection konekcija=datamanager.checkOutConnection();
		try{
		if(konekcija!=null){
			String sql="select admin from tbl_korisnik where username=? and password=md5(?) and aktivan=1 ";
			PreparedStatement statment= konekcija.prepareStatement(sql);
			statment.setString(1, username);
			statment.setString(2, password);
			
			ResultSet rez=statment.executeQuery();
			while(rez.next()){
				pom=rez.getBoolean(1);
			}
			
			rez.close();
			statment.close();
			datamanager.checkInConnection(konekcija);
			
			
		}
		}catch(SQLException e){
			e.printStackTrace();
		}

		/* Simboli:
		 * 
		 *        0 -> nepoznat status korisnika, nije ulogovan ni registrovan, korisnik je GOST
		 *        1 -> korisnik je klijent sajta, ima pristup sadrzaju u skladu sa svojim privilegijama
		 *        2 -> korisnik je administrator sajta, najvece privilegije
		 *        3 -> korisniku nije omogucen pristup prije odobrenja administratora
		 */
		
		return 0;    //treba iskomentarisati
	}
    public static boolean izmjenaKorisnika(DataManager datamanager,Korisnik korisnik){
    	boolean uspjeh=false;
    	
    	Connection konekcija=datamanager.checkOutConnection();
    	
    	try{
    		
    		if(konekcija!=null){
    			PreparedStatement statment=konekcija.prepareStatement(Update);
    			statment.setString(1, korisnik.getIme());
    			statment.setString(2, korisnik.getPassword());
    			
    			if(statment.executeUpdate()==1){
    				uspjeh=true;
    			}
    			else  uspjeh=false;
    			
    			statment.close();
    		}
    		datamanager.checkInConnection(konekcija);
    	}
    	catch(SQLException e){
    		e.printStackTrace();
    	}
    	
    	return uspjeh;
    }


}

